home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 145
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin
/
tools
/
sharp
/
sxwork3.lzh
/
サンプル応用編
/
簡易ドロー
/
SDRAW.H
< prev
next >
Wrap
Text File
|
1994-03-10
|
5KB
|
166 lines
/******************************************************************************
* sdraw.h: 簡易ドロー用ヘッダファイル
******************************************************************************
* Workroom SX-68K Sample Program Copyright 1994 SHARP
*
* 定数定義
*/
/* ウィンドウタイトル */
#define WINTITLE ((_LASCII) "\x0a簡易ドロー")
/* ウィンドウサイズ */
#define WIN_H 600 /* ウィンドウの幅 */
#define WIN_V 300 /* ウィンドウの高さ */
/* 数値調整ボタンのリピート時間(1/100秒単位)*/
#define ADJFIRST 40 /* リピート開始時間 */
#define ADJNEXT 12 /* リピート間隔 */
/* サブウィンドウサイズ */
#define SUBWIN_H 170 /* ウィンドウの幅 */
#define SUBWIN_V 118 /* ウィンドウの高さ */
/* サブウィンドウのクローズボタンの位置 */
#define CLOSE_X (SUBWIN_H - 14) /* X座標 */
#define CLOSE_Y 4 /* Y座標 */
#define SW_MENUH 30
#define SW_MENUV 30
#define MAX_RGN_CNT 100 /* リージョンの最大点数 */
/* イベントマスク */
#define EVENTMASK (EM_IDLE | EM_MSLDOWN | EM_MSLUP | EM_MSRDOWN | EM_UPDATE | EM_ACTIVATE | EM_SYSTEM1 | EM_SYSTEM2)
/*
* 構造体宣言
*/
typedef struct DPoint {
double x; /* X方向の値 */
double y; /* Y方向の値 */
} DPoint;
typedef struct ComData {
int id; /* 図形の種類 */
struct ComData **next; /* 次のデータのハンドル */
Rect bounds; /* データを囲むレクタングル */
int color; /* 描画色 */
Point penSize; /* 描画ペンサイズ */
int drawMode; /* 枠(0)表示か塗りつぶし(1)表示か */
union {
Point radius; /* ラウンドレクタングルのときのみ有効 */
struct {
int cnt; /* リージョンの点数 */
DPoint dPoint[100]; /* リージョンの座標情報 */
Region **hdl; /* リージョンハンドル */
} rgn;
} ext;
} ComData;
typedef struct ComVal { /* 共通変数 */
Window *windowPtr; /* ウィンドウポインタ */
BOOLEAN activeFlag; /* アクティブフラグ */
TsEvent event; /* イベントレコード */
int eventMask; /* イベントマスク */
int errorCode; /* エラーコード */
BOOLEAN endFlag; /* 終了フラグ */
Subwin *subwinPtr; /* サブウィンドウポインタ */
Region **subRgnHdl; /* サブウィンドウのリージョンハンドル */
BOOLEAN subActiveFlag; /* サブウィンドウのアクティブフラグ */
/* サブウィンドウの数値調整ボタンのコントロールハンドル */
Control **adjBtnHdl;
/* サブウィンドウの数値調整ボタンのタイトル */
LASCII adjBtnTtl;
Point penSize; /* 描画ペンサイズ */
int drawType; /* 現在の処理メニュー番号 */
int drawMode; /* 枠(0)表示か塗りつぶし(1)表示か */
int paletFC; /* 現在のフォアグラウンドカラー */
int paletBC; /* 現在のバックグラウンドカラー */
Point downPos; /* マウスレフトダウン時の入力点 */
Point upPos; /* マウスレフトアップ時の入力点 */
int animFlag; /* drawGraph処理フラグ */
Point radius; /* ラウンドレクタングルの直径 */
int rgnCnt; /* リージョンの座標入力点数 */
DPoint rgnDPoint[100]; /* リージョンの座標格納場所 */
long clickTime; /* 最後に左ボタンが離された時間 */
BOOLEAN dispRbFlag; /* ラバーバンド表示フラグ */
Rect rbSize; /* ラバーバンド表示点 */
Point rbPos;
ComData **data; /* データ格納領域へのハンドル */
int dataCnt; /* 格納データの件数 */
/* 現在アクティブな図形データへのハンドル */
ComData **actData;
/* ハンドル用レクタングルデータ格納場所 */
Rect rcHandle[8];
/* 選択処理のときに使用 -1:選択、0:移動、1~8:拡大・縮小 */
int selMode;
} ComVal;
/*
* 外部変数宣言
*/
extern Rect wsSize; /* サブウィンドウサイズ */
extern Rect rcSubMenu; /* メニューエリアリージョン */
/*
* 関数プロトタイプ
*/
/* sdmain.c */
BOOLEAN init(ComVal *);
BOOLEAN createWindow(ComVal *);
void idleEvent(ComVal *);
void msLDownEvent(ComVal *);
void msLUpEvent(ComVal *);
void msRDownEvent(ComVal *);
void selectMenu(ComVal *);
void keyDownEvent(ComVal *);
void updateEvent(ComVal *);
void drawGraph(ComVal *);
void activateEvent(ComVal *);
void systemEvent(ComVal *);
void showErrDialog(ComVal *);
void endProc(int, ComVal *);
BOOLEAN checkDClick(ComVal *);
void repeatAdjBtn(ComVal *, int);
void addUpdate(Window *, Rect *);
/* sdraw.c */
void drawAll(ComVal *);
void drawNext(ComVal *, ComData **);
void drawOne(ComVal *, ComData **);
void setInpRgnPos(ComVal *);
void setComData(ComVal *, ComData **);
void dispCurHdl(ComVal *);
void dispHdlRect(ComVal *, int);
void checkRectPos(Rect *);
void checkPos(ComVal *, Point *);
void drawGraphRgn(ComVal *);
void makeRgn(ComVal *);
void dispRubberBand(ComVal *, int);
void drawZukei(ComVal *, int, int, Rect *);
void dispRBRgn(ComVal *, BOOLEAN);
void selectZukei(ComVal *, LPoint);
int checkHdl(ComVal *, LPoint);
BOOLEAN checkZukei(ComData **, LPoint);
BOOLEAN checkLine(Rect *, LPoint, Point *);
int setRBRect(ComVal *, LPoint);
void decisionZukei(ComVal *);
void deleteData(ComVal *);
void eraseData(ComVal *);
/* sdsubwin.c */
BOOLEAN createSubwin(ComVal *);
BOOLEAN createSubControl(ComVal *);
void msLDownSubwin(ComVal *);
int findSubwin(ComVal *, LPoint, int);
BOOLEAN checkPctBtn(ComVal *, Rect *, LPoint, int);
void revFillRect(Rect *);
void revFrameRect(Rect *);
void dragSubwin(ComVal *, LPoint);
void drawSubwin(ComVal *);
void drawSubTitleBar(ComVal *);
void drawMenu(ComVal *);
void calcPctBtn(int, Rect *);
void drawPctBtn(ComVal *, int);
void setPctBtn(ComVal *, int);
void checkMenu(ComVal *, LPoint);
void setDrawType(ComVal *, int);